In more and more computer systems, processes are divided between servers and clients. Servers provide services accessible to clients. In many cases, clients need high availability in these services.
One prior art technique for implementing server and client processes is to have multiple servers each of which provides a single service. In this way, when one server goes down, other services remain available. However, if a server supporting a service goes down, the service becomes unavailable to the clients.
An alternative prior art technique for implementing server and client processes is to have multiple servers each of which has a copy of each of the available services. The first server provides the services initially. If the first server fails, a second server can take over providing all of the services. However, this requires extensive redundancy, which is costly.
Therefore, what is needed is a method for implementing a high availability service process which provides services without requiring duplication of services.